@(issue: gitbucket.core.model.Issue,
  comments: List[gitbucket.core.model.IssueComment],
  issueLabels: List[gitbucket.core.model.Label],
  issueAssignees: List[gitbucket.core.model.IssueAssignee],
  collaborators: List[String],
  milestones: List[(gitbucket.core.model.Milestone, Int, Int)],
  priorities: List[gitbucket.core.model.Priority],
  labels: List[gitbucket.core.model.Label],
  customFields: List[(gitbucket.core.model.CustomField, Option[gitbucket.core.model.IssueCustomField])],
  isEditable: Boolean,
  isManageable: Boolean,
  isCommentManageable: Boolean,
  repository: gitbucket.core.service.RepositoryService.RepositoryInfo)(implicit context: gitbucket.core.controller.Context)
@import gitbucket.core.view.helpers
@gitbucket.core.html.main(s"${issue.title} - Issue #${issue.issueId} - ${repository.owner}/${repository.name}", Some(repository)){
  @gitbucket.core.html.menu("issues", repository){
    <div>
      <div class="show-title pull-right">
        @if(isManageable || context.loginAccount.map(_.userName == issue.openedUserName).getOrElse(false)){
          <a class="btn btn-default" href="#" id="edit">Edit</a>
        }
        @if(isEditable){
          <a class="btn btn-success" href="@helpers.url(repository)/issues/new">New issue</a>
        }
      </div>
      <div class="edit-title pull-right" style="display: none;">
        <a class="btn btn-success" href="#" id="update">Save</a>  <a class="btn btn-default" href="#" id="cancel">Cancel</a>
      </div>
      <h1 class="body-title">
        <span class="show-title">
          <span id="show-title">@issue.title</span>
          <span class="muted">#@issue.issueId</span>
        </span>
        <span class="edit-title" style="display: none;">
          <span id="error-edit-title" class="error"></span>
          <input type="text" class="form-control" style="width: 700px;" id="edit-title" value="@issue.title"/>
        </span>
      </h1>
    </div>
    <div style="margin-bottom: 15px">
      @if(issue.closed) {
        <span class="label label-important issue-status">Closed</span>
      } else {
        <span class="label label-success issue-status">Open</span>
      }
      <span class="muted">
        @helpers.user(issue.openedUserName, styleClass="username strong") opened this issue @gitbucket.core.helper.html.datetimeago(issue.registeredDate) - @defining(
          comments.count( _.action.contains("comment") )
        ){ count =>
          @count @helpers.plural(count, "comment")
        }
      </span>
    </div>
    <hr>
    <div style="margin-top: 15px;">
      <div class="col-md-9">
        @gitbucket.core.issues.html.commentlist(Some(issue), comments, isCommentManageable, repository)
        @gitbucket.core.issues.html.commentform(issue, true, isEditable, isManageable, repository)
      </div>
      <div class="col-md-3">
        @gitbucket.core.issues.html.issueinfo(
          issue = Some(issue),
          comments = comments,
          issueLabels = issueLabels,
          issueAssignees = issueAssignees,
          collaborators = collaborators,
          milestones = milestones,
          priorities = priorities,
          defaultPriority = None,
          labels = labels,
          customFields = customFields,
          isManageable = isManageable,
          repository = repository
        )
      </div>
    </div>
  }
}
<script>
$(function(){
  $('#edit').click(function(){
    $('.edit-title').show();
    $('.show-title').hide();
    $('#edit-title').focus();
    return false;
  });

  $('#update').click(function(){
    $(this).attr('disabled', 'disabled');
    $.ajax({
      url: '@helpers.url(repository)/issues/edit_title/@issue.issueId',
      type: 'POST',
      data: {
        title   : $('#edit-title').val()
      }
    }).done(function(data){
      $('#show-title').empty().text(data.title);
      $('#cancel').click();
      $('#update').removeAttr('disabled');
    }).fail(function(req){
      $('#update').removeAttr('disabled');
      $('#error-edit-title').text($.parseJSON(req.responseText).title);
    });
    return false;
  });

  $('#cancel').click(function(){
    $('.edit-title').hide();
    $('.show-title').show();
    return false;
  });
});
</script>
